import '../models/models.dart';

abstract class ArticleRepository {
  // Stream<Article?> get article;
  Future<Article> getArticle(String slug);

  Future<List<Article>> getArticles(String tag,
    String author,
    bool favorited,
    int limit,
    int offset);

  Future<List<Article>> getArticlesFeed(int limit, int offset);

  Future<void> createArticle(Article article);

  Future<void> updateArticle(String slug, Article article);

  Future<void> deleteArticle(String slug);

  Future<List<Comment>> getComments(String slug);

  Future<List<String>> getTags( String slug);

  Future<void> createComment(
    String slug,
    Comment comment
  );
  Future<void> deleteComment(String slug, int id);
  Future<void> createFavorite(String slug);
  Future<void> deleteArticleFavorite(String slug);
}
